﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AccesoData;
using Entidades;
using NUnit.Framework;

namespace Pruebas.PruebasDao
{
    [TestFixture]
    class PruebaDaoRecaudoInspeccion: CrearEntidades
    {
        [TestCase]
        public void PruebaAgregarReacudoInspeccion()
        {
            Inspeccion inspeccion = FabricaEntidades.ObtenerInspeccion();
            Siniestro siniestro = DatosSiniestro();
            Recaudo recaudo = FabricaEntidades.ObtenerRecaudo();

            recaudo.Nombre = "pruebaSiniestro";
            recaudo.Id = DAO.ObtenerFabrica(1).ObtenerDaoRecaudo().AgregarRecaudo(recaudo);

            inspeccion.Ajustador = DatosPersonal();
            inspeccion.FechaAsignacion = new DateTime(2000, 11, 28);
            inspeccion.FechaInspeccion = DateTime.Now;
            inspeccion.FechaEntregaInformeFinal = new DateTime();
            inspeccion.FechaEntregaInformePreliminar = new DateTime();
            inspeccion.FechaRecibidoInformeFinal = new DateTime();
            inspeccion.FechaRecibidoInformePreliminar = new DateTime();

            inspeccion.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoInspeccion().
                AgregarInspeccion(inspeccion, siniestro);

            RecaudoInspeccion recaudoInspeccion = 
                FabricaEntidades.ObtenerRecaudoInspeccion();

            recaudoInspeccion.FechaEntregado = new DateTime();
            recaudoInspeccion.FechaSolicitud = DateTime.Now;
            recaudoInspeccion.Observacion = "prueba";
            recaudoInspeccion.Recaudo.Id = recaudo.Id;

            recaudoInspeccion.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoRecaudoInspeccion().
                AgregarRecaudoInspeccion(recaudoInspeccion,inspeccion);

            Assert.AreNotEqual(-1,recaudoInspeccion.Id);
        }

        [TestCase]
        public void PruebaEditarRecaudoInspeccion()
        {
            Inspeccion inspeccion = FabricaEntidades.ObtenerInspeccion();
            Siniestro siniestro = DatosSiniestro();
            Recaudo recaudo = FabricaEntidades.ObtenerRecaudo();

            recaudo.Nombre = "pruebaSiniestro";
            recaudo.Id = DAO.ObtenerFabrica(1).ObtenerDaoRecaudo().AgregarRecaudo(recaudo);

            inspeccion.Ajustador = DatosPersonal();
            inspeccion.FechaAsignacion = new DateTime(2000, 11, 28);
            inspeccion.FechaInspeccion = DateTime.Now;
            inspeccion.FechaEntregaInformeFinal = new DateTime();
            inspeccion.FechaEntregaInformePreliminar = new DateTime();
            inspeccion.FechaRecibidoInformeFinal = new DateTime();
            inspeccion.FechaRecibidoInformePreliminar = new DateTime();

            inspeccion.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoInspeccion().
                AgregarInspeccion(inspeccion, siniestro);

            RecaudoInspeccion recaudoInspeccion =
                FabricaEntidades.ObtenerRecaudoInspeccion();

            recaudoInspeccion.FechaEntregado = new DateTime();
            recaudoInspeccion.FechaSolicitud = DateTime.Now;
            recaudoInspeccion.Observacion = "prueba";
            recaudoInspeccion.Recaudo.Id = recaudo.Id;

            recaudoInspeccion.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoRecaudoInspeccion().
                AgregarRecaudoInspeccion(recaudoInspeccion, inspeccion);


            recaudoInspeccion.FechaEntregado = new DateTime();
            recaudoInspeccion.FechaSolicitud = DateTime.Now;
            recaudoInspeccion.Observacion = "pruebaEditantod";
            recaudoInspeccion.Recaudo.Id = recaudo.Id;

            bool respuesta =
                DAO.ObtenerFabrica(1).ObtenerDaoRecaudoInspeccion().
                EditarRecaudoInspeccion(recaudoInspeccion);
            Assert.IsTrue(respuesta);
        }
    }
}
